package com.example.demo.mapper;

import com.example.demo.entity.*;
import com.example.demo.entity.Dto.AbnormalInfo;
import com.example.demo.entity.Dto.HealthExaminationRecordDto;
import com.example.demo.entity.Dto.TotalInfo;
import com.example.demo.entity.Dto.VaccinationDto;
import com.example.demo.entity.VO.PetInfoDetail;
import com.example.demo.entity.VO.VaccinationRecord;
import com.example.demo.entity.VO.VaccinationVO;
import com.example.demo.entity.param.ExaminationRecordParam;

import java.util.List;


/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author 糕糕
 * @since 2025-01-29 12:52:02
 */
public interface PetMapper{

    List<PetInfoDetail> getPetInfo(Long userId);

    List<VaccinationVO> getAllVaccination();

    List<VaccinationDto> getVaccinationRecord(Long userId);

    void addVaccinationRecord(VaccinationRecord vaccinationRecord);

    Pet getPetInfoByPetId(Integer petId);

    void updatePetInfo(Pet pet);

    List<PetHealthExaminationRecord> getHealthCheckUpRecords(ExaminationRecordParam param);

    List<PetActivities> getPetActivityList(Long userId);

    List<PetDrink> getPetDrinkInfo(Long userId);

    List<AnomalyRecord> getAnomalyRecord(String anomaly,Long userId);

    PetImgs getImgs(Integer id);

    List<PetDrink> getPetDrinkList(Integer id);

    List<AnomalyRecord> getAnomalyRecordList(Integer id);

    List<PetActivities> getPetActivityList2(Integer id);

    List<VaccinationDto> getVaccinationRecordList(Integer id);

    List<PetHealthExaminationRecord> getExaminationRecordList(Integer id);

    List<PetDailyData> getDailyData(Integer id);

    void addPetDailyInfo(PetDailyData data);

    void updateVaccinationRecord(VaccinationRecord vaccinationRecord);

    AbnormalInfo checkPetAbnormalInfo(Integer userId);

    void updatePetAbormaly(AnomalyRecord record);

    List<Doctor> getDocList();

    void editDocInfo(Doctor doc);

    void addDoctor(Doctor doc);

    void addPet(Pet pet);

    void addHealthExaminationRecord(PetHealthExaminationRecord petHealthExaminationRecord);

    void editPetImg(PetImgs img);

    void addPetHealthExaminationRecord(PetHealthExaminationRecord record);

    List<HealthExaminationRecordDto> getPetHealthExaminationRecordList(Integer petId);

    List<HealthExaminationRecordDto> searchHealthExaminationRecordList(HealthExaminationRecordDto param);

    List<PetInfoDetail> getPetInfo2(PetInfoDetail pet);

    Long getPet(Long petId);

    VaccinationRecord getVaccinationRecordInfo(VaccinationRecord vaccinationRecord);

    void addPetAbormal(AnomalyRecord record);

    void addPetDrink(PetDrink petDrink);

    Integer getPetHealthRecord(Long userId);

    void addPetActivity(PetActivities petActivities);

    void cleanPetActivity(Integer petId);

}

